package com.feng.service;

import com.feng.dto.UserDto;
import com.feng.vo.PageVo;
import com.feng.vo.ResultVo;
import com.feng.vo.UserAddVo;
import com.feng.vo.UserVo;
import org.springframework.security.core.userdetails.UserDetails;


import javax.servlet.http.HttpServletRequest;
import java.util.List;

/**
 * @author: 丰
 * @date: 2022/12/7 17:18
 */
public interface UserService {
    /**
     * 保存账号
     * @return 0：失败，1：成功
     */
    ResultVo<Integer> register(UserVo userVo, HttpServletRequest request);

    /**
     * 登录
     * @return 当前登录用户信息
     */
    ResultVo<UserDto> login(UserVo userVo, HttpServletRequest request);

    /**
     * 新增账号
     */
    ResultVo<Integer> insert(UserAddVo userVo);

    /**
     * 更改信息
     */
    ResultVo<Integer> update(UserAddVo userAddVo);

    /**
     * 修改密码
     */
    ResultVo<Integer> updatePassword(UserVo userVo);

    /**
     * 批量删除
     */
    ResultVo<Integer> deleteAll(Integer[] ids);

    /**
     * 根据id删除
     */
    ResultVo<Integer> deleteById(int id);

    /**
     * 根据id查询
     */
    ResultVo<UserDto> selectById(int id);

    /**
     * 条件分页查询
     */
    ResultVo<List<UserDto>> selectAll(PageVo pageVo);

    UserDetails userSetAuthentication(String username);
}
